[答疑]启动软件是用例吗
沙亚雄 2020-8-13 14:06
潘老师,你好,最近读了您的软件方法,结合自己的项目发现始终有一个疑问?那就是启动软件算不算一个用例,因为软件在启动的时候一般都要实例化一些对象,读一些配置文件等等。那启动软件或者软件关闭软件算一个用例吗?是系统用例还是其他用例的扩展呢?
UMLChina潘加宇
不算。
用例是需求,需求描述系统作为一个整体(黑箱)必须有的表现(功能、性能、强加的约束)——“不这样不行”。
那我们来看:
(1)“启动软件”在涉众看来属于“不这样不行”吗?
其实不是,涉众要的是我们系统为他提供的核心域相关的价值。如果我们的系统从面对涉众开始就一直可以使用,让它计算什么就计算什么,不需要启动,涉众是很高兴的。怎么做到?这不关需求的事。参见第二章“投币法”,我们的系统是外星人做的,这点有什么做不到的?
(2)“软件在启动的时候一般都要实例化一些对象,读一些配置文件”——这很可能不是需求。
“实例化”、“读取”、“加载”实际上是从设计角度猜想的一种设计方案。
系统是一个黑箱,不存在“实例化”、“读取”、“加载”,把这些删掉,然后问“为什么,不这样可能会怎样”,回答可能是“不这样,可能做某个计算的时候,从输入到输出的时间会比较长,那就被竞争对手甩下了”——这个才是系统作为一个整体不得不满足的。我们的系统是外星人做的,外星人有没有“实例化”、“读取”、“加载”我们怎么知道,外星人能给我做到速度比对手快就行了呗。
(3)和当前系统、当前用例相关吗?
可能有的人说,不管是谁启动,系统总得先启动吧?这是傻子都知道的,和当前系统、当前用例没有特定关系,不用写。
但是,就像我在“废话迷”一文中说的,很多人会乐意把“启动”当成用例,然后每个项目都写一遍,不用思考,还可以凑工作量,爽!
当然,如果“启动”就是目标系统的核心价值,它就是用例。例如,一个提供“远程跨平台启动应用程序”服务的软件。
UMLChina建模竞赛题大全-题目全文+分卷自测(10套100题)
《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题
9月19-20、26-27晚网络软件需求设计方法学全程实例剖析公开课
[9月15日新增EA009试看]全程字幕-司法调解、房产抵押评估、博物馆安全、跨组织结算、远程求医、期货仓单-建模示范视频
中文书籍中对《人月神话》的引用(完结,共110本):软件工程通史1930-2019、实用Common Lisp编程……
CTO也糊涂的常用术语:功能模块、业务架构、用户需求、文档……(2020年3月更新素材)